#pragma warning disable 108
using System;
using System.Runtime.InteropServices;
using System.Collections.Generic;
using Cephei;
using Cephei.Generic;
using Cephei.QL.Times;
namespace Cephei.QL
{
     // <summary> 
	// ! \warning this class performs no check that the provided/requested fixings are for dates in the past, i.e. for dates less than or equal to the evaluation date. It is up to the client code to take care of possible inconsistencies due to "seeing in the future"
	// </summary>
    [Guid ("7D9013E8-5B89-4aaa-BEF4-C619F4D7A8F1"),ComVisible(true)]
	public interface IIndex 
	{
		///////////////////////////////////////////////////////////////
        // Methods
        //
        
		 IIndex AddFixing(DateTime fixingDate, Double fixing, Microsoft.FSharp.Core.FSharpOption<Boolean> forceOverwrite);
        
		 IIndex ClearFixings {get;}
        
		 Double Fixing(DateTime fixingDate, Microsoft.FSharp.Core.FSharpOption<Boolean> forecastTodaysFixing);
        
		 Cephei.QL.Times.ICalendar FixingCalendar {get;}
        
		 Boolean IsValidFixingDate(DateTime fixingDate);
        
		 String Name {get;}
    }

    // <summary> 
	// ! \warning this class performs no check that the provided/requested fixings are for dates in the past, i.e. for dates less than or equal to the evaluation date. It is up to the client code to take care of possible inconsistencies due to "seeing in the future" Factory
	// </summary>
   	[ComVisible(true)]
    public interface IIndex_Factory // : Collection_Factory<IIndex, ICell<IIndex>>
    {
        ///////////////////////////////////////////////////////////////
        // Factory methods
        //
    }
}

